﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

namespace daBase.Objects.AnalysisErrors.Report
{
    /// <summary>
    /// Сериализуемая ошибка
    /// </summary>
    [XmlRoot("Error")]
    public class SerializableError
    {
        // Поля ошибки
        private int level;
        private string message;
        private string unit;
        private int line;
        private string code;
        private string author;

        // Сериализуемые поля
        public int Level { get { return level; } set { level = value; } }
        public string Message { get { return message; } set { message = value; } }
        public string Unit { get { return unit; } set { unit = value; } }
        public int Line { get { return line; } set { line = value; } }
        public string Code { get { return code; } set { code = value; } }
        public string Author { get { return author; } set { author = value; } }

        /// <summary>
        /// Конструктор
        /// </summary>
        public SerializableError()
        {
            level = line = 0;
            message = unit = string.Empty;
        }

        /// <summary>
        /// Параметризованный конструктор
        /// </summary>
        /// <param name="e">ошибка анализа</param>
        public SerializableError(ParsingError e)
        {
            level = e.Level;
            message = e.Message;
            unit = e.File;
            line = e.Line;
            code = e.Code;
            author = e.MetaTags["author"];
        }
    }
}
